perm filename C[1,BGB]1 blob
sn#001264 filedate 1972-10-22 generic text, type T, neo UTF8
00100 ; ALTERNATE PDP-10 MNEMONICS.
00200 OPDEF LIP [HLR]
00300 OPDEF LAP [HRR]
00400 OPDEF DIP [HRLM]
00500 OPDEF DAP [HRRM]
00600
00700 OPDEF LIPZ [HLRZ]
00800 OPDEF LAPZ [HRRZ]
00900 OPDEF DIPZ [HRLZM]
01000 OPDEF DAPZ [HRRZM]
01100
01200 OPDEF SLIP [HLL]
01300 OPDEF SLAP [HRL]
01400 OPDEF STIP [HLLM]
01500 OPDEF STAP [HLRM]
01600
01700 OPDEF SLIPZ [HLLZ]
01800 OPDEF SLAPZ [HRLZ]
01900 OPDEF STIPZ [HLLZM]
02000 OPDEF STAPZ [HLRZM]
02100
02200 OPDEF ZIP [HRRZS]
02300 OPDEF ZAP [HLLZS]
02400 OPDEF WIP [HRROS]
02500 OPDEF WAP [HRRZS]
02600
02700 OPDEF NIP [HLRE]
02800 OPDEF NAP [HRRE]
02900 OPDEF NIM [HRREI]
03000 OPDEF LIM [HRRI]
03100 OPDEF SLIM [HRLI]
03200
03300 OPDEF CAR [HLRZ]
03400 OPDEF CDR [HRRZ]
03500
03600 OPDEF LAC [MOVE]
03700 OPDEF DAC [MOVEM]
03800
03900 OPDEF GO [JRST]
04000 OPDEF LIMZ [MOVEI]
04100 OPDEF SLIMZ [MOVSI]
04200
04300 OPDEF FIXX [FIX 233000]
04400 OPDEF FLOAT [FSC 233]
04500 DEFINE FLIM(AC,R)<HRLEI AC,(<R>)>;FLOATING IMMEDIATE.
04600
04700 OPDEF LACN [MOVN]
04800 OPDEF DACN [MOVNM]
04900 OPDEF LACM [MOVM]
05000 OPDEF DACM [MOVMM]
00100 ; SAIL LIKE SUBROUTINE LINKAGE.
00200 ↓P ←← 17
00300 DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
00400 DEFINE CALL(NAME,X1,X2,X3,X4){
00500 IFDIF <> <X1> {PUSH P,X1
00600 IFDIF <> <X2> {PUSH P,X2
00700 IFDIF <> <X3> {PUSH P,X3
00800 IFDIF <> <X4> {PUSH P,X4}}}}
00900 PUSHJ P,NAME}
01000 ;ARGUMENT FETCH.
01100 FOR @$ I←1,4{
01200 DEFINE ARG$I <-I(17)>}
01300 ;CALL AND RETURN VALUE.
01400 DEFINE SETQ (VAR,LIST){
01500 CALL(LIST)
01600 DAC 1,VAR}
01700 ;RETURN N-ARGUMENTS & OPTIONAL RESULT.
01800 FOR @$ I←1,4{
01900 DEFINE RET$I(R){IFDIF<><R><LAC 1,R>↔GO RET$I$.}
02000 ↓RET$I$.: SUB P,[XWD I+1,I+1]↔GO @I+1(17)}
02100 DEFINE RET0(R){IFDIF<><R><LAC 1,R>↔POPJ P,}
02200 ;ACCUMULATOR TRANSPARENCY.
02300 FOR @$ I←0,17{↓AC$I: 0↔}
02400 DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
02500 DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
02600 ;MACROS FOR ALLOCATING AND NAMING WORKING SPACE.
02700 DEFINE ACCUMULATORS(LIST){ACPTR←←2
02800 FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
02900 DEFINE DECLARE (LIST){
03000 FOR VARNAM⊂(LIST)<VARNAM: 0↔>}
03100 ;FATAL ERROR MESSAGE.
03200 DEFINE FATAL(STR){PUSHJ P,FATAL.↔ASCIZ/STR/}
03300 FATAL.: OUTSTR[ASCIZ/
03400 FATAL - /]↔OUTSTR @(17)↔INCHRW↔GO .-1↔LIT